$Description$
给定一些冰块,每个冰块上有一些企鹅,每个冰块有一个可以从当前冰块跳出的次数限制,每个冰块位于一个坐标,现在每个企鹅跳跃力为$d$,问所有企鹅能否跳到一点上,如果可以输出所有落脚冰块,如果没有方案就打印$-1$
$Solution$
对于每个点$i$进行拆点,分成$i_1~$和$i_2~$,中间连一条容量为能跳出次数的边,从源点$s$连向$i_1~$,流量为每个点的企鹅数,然后$n^2$枚举点,如果两个点$i,j$距离$\leqslant d$,那么分别从$i_1~$连向$j_2~,j_1~$连向$i_2~$,容量为$inf$,接着枚举汇点$t$(因为每个点都可能成为企鹅的集合点),将$t_1$作为汇点,接着跑最大流,看看是否满流,如果满流了就记录答案,最后判断一下是否有答案,没有答案输出$-1$即可
$Code$
1 |
|